草庐IT

ModBus RTU与ModBus TCP通信协议详解

全部标签

STM32使用SPI通信时的一些常见问题及解决方法(主,从)

    最近在做一个多MCU的项目时,MCU之间的数据传输使用了SPI通信,在做从机时遇到了一些“疑难杂症”,研究了半天,总算是把故障排除了,就又总结了一下SPI常遇到的几种问题写出来整理一下。目录一、SPI简介: 二、常见问题:三、疑难杂症:Q1:使用的HAL库,先开从机,然后再给主机上电,通信正常,但是同时上电,即便是给主机加了延时都通信异常。Q2:使用的DMA收发,单独测试一切正常,但是只要跟其他DMA同时使用就死机四、SPI的稳定性优化:一、SPI简介:    SPI是一种高速,全双工的串行通信协议,由Motorola首先提出,其通信速率可轻松超过10Mbps(详见文章:STM32初学

ReentrantLock详解

目录一、ReentrantLock的含义二、RerntrantLock当中的常用方法   ①lock()和unlock()方法  ②构造方法  ③tryLock()方法    tryLock()无参数    tryLock(timeout,Times)有参数  ④lockInterruptibly()throwsInterruotedException经典面试问题: ReentrantLock和synchronized有什么不同使用方法上面的区别①ReentrantLock可以提供公平+非公平两种特性 ②ReentrantLock的加锁、解锁操作都是需要手动进行,③synchronized无法

PlayBook 详解

4)Playbook4.1)Playbook介绍PlayBook与ad-hoc相比,是一种完全不同的运用Ansible的方式,类似与Saltstack的state状态文件。ad-hoc无法持久使用,PlayBook可以持久使用。PlayBook剧本是由一个或多个"Play"组成的列表Play的主要功能在于将预定义的一组主机,装扮成事先通过Ansible中的Task定义好的角色。从根本上来讲,所谓的Task无非是调用Ansible的一个module。将多个Play组织在一个PlayBook中,即可以让它们联合起来按事先编排的机制完成某一任务。PlayBook文件是采用YAML语言编写的。4.1.

关系数据库范式详解(Normal form,简称NF)

引言关系数据库中的关系满足一定要求的,满足不同程度要求的为不同的范式,共有6种范式。满足最低要求的叫第一范式,简称1NF;在第一范式的基础上满足进一步要求的称为第二范式,简称2NF;其余范式以此类推。对于各种范式之间有如下关系:5NF∈4NF∈BCNF∈3NF∈2NF∈1NF第一范式1NF定义:属于第一范式关系的所有属性都不可再分,即数据项不可分。理解:第一范式强调数据表的原子性,是其他范式的基础。如下图所示数据库就不符合第一范式:公司名称地址商品电话名称数量上表将商品这一数据项又划分为名称和数量两个数据项,故不符合第一范式关系。改正之后如下图所示:公司名称地址商品名称商品数量电话上表就符合第

XML 简介及用法详解

XML是一种用于存储和传输数据的与软件和硬件无关的工具。什么是XML?XML代表eXtensibleMarkupLanguage(可扩展标记语言)。XML是一种与HTML非常相似的标记语言。XML被设计用于存储和传输数据。XML被设计成具有自我描述性。XML不执行任何操作,也许有点难理解,但XML不执行任何操作。XML示例这是一张存储为XML的给Tove的Jani的便签:ToveJaniReminderDon'tforgetmethisweekend!上面的XML相当自我描述:它包含了发件人信息它包含了收件人信息它有一个标题它有一个消息正文但是,上面的XML仍然不执行任何操作。XML只是用标记

多线程系列(十九) -Future使用详解

一、摘要在前几篇线程系列文章中,我们介绍了线程池的相关技术,任务执行类只需要实现Runnable接口,然后交给线程池,就可以轻松的实现异步执行多个任务的目标,提升程序的执行效率,比如如下异步执行任务下载。//创建一个线程池ExecutorServiceexecutor=Executors.newFixedThreadPool(2);//提交任务executor.submit(newRunnable(){@Overridepublicvoidrun(){//执行下载某文件任务System.out.println("执行下载某文件任务");}});而实际上Runnable接口并不能满足所有的需求,

STM32+W5500实现以太网通信

STM32系列32位微控制器基于Arm®Cortex®-M处理器,旨在为MCU用户提供新的开发自由度。它包括一系列产品,集高性能、实时功能、数字信号处理、低功耗/低电压操作、连接性等特性于一身,同时还保持了集成度高和易于开发的特点。本例采用STM32作为MCU。W5500是一款全硬件TCP/IP嵌入式以太网控制器,为嵌入式系统提供了更加简洁的互联网方案。W5500集成了TCP/IP协议栈,10/100M以太网数据链路层(MAC)以及物理层(PHY)。全硬件实现的TCP/IP协议栈支持TCP,UDP,IPv4,ICMP,ARP,IGMP以及PPPoE协议。W5500内嵌32K字节片上缓存以供以太

IIC通信为什么使用开漏输出+上拉电阻的模式

目录前言一、什么是开漏输出和推挽输出推挽输出和开漏输出二、开漏和推挽的区别三、开漏输出上下拉电阻应用总结前言最近遇到技术群里有小伙伴在问为什么IIC通信需要挂上拉电阻,查阅了一些资料做一个小结留作备用。方便后面复习。一、什么是开漏输出和推挽输出推挽输出和开漏输出 推挽输出(Push-PullOutput)是由两个MOS或者三极管受到互补控制信号的控制,两个管子始终处在一个导通另一个截止的状态;输入逻辑1,则P-MOS激活,输出为高电平;图1;输入逻辑0,则N-MOS激活,输出为低电平;图2;                              图1                    

一文看懂单总线协议(1-wire)

文章目录一、什么是单总线协议?1、单总线协议概念及特点2、硬件结构3、单总线协议应用二、单总线协议时序(以DS18B20为例)1、初始化(复位脉冲+存在脉冲)2、读/写时序(1)写时序(2)读时序三、DS18B20访问执行步骤1、初始化2、ROM操作指令(1)SearchROM[F0h](搜索ROM指令)(2)READROM[33h](读取ROM指令)(3)MATHROM[55h](匹配ROM指令)(4)SKIPROM[CCh](忽略ROM指令)(5)ALARMSEARCH[ECH](报警搜索指令)3、DS18B20功能指令(1)CONVERTT[44h](温度转换指令)(2)WRITESCR

linux expect 详解

介绍expect是由DonLibes基于Tcl(ToolCommandLanguage)语言开发的,主要应用于自动化交互式操作的场景,借助Expect处理交互的命令,可以将交互过程如:ssh登录,ftp登录等写在一个脚本上,使之自动化完成。尤其适用于需要对多台服务器执行相同操作的环境中,可以大大提高系统管理人员的工作效率常用指令命令速查spawn:交互程序开始后面跟命令或者指定程序(在壳内启动这个进程)expect:获取匹配信息匹配成功则执行expect后面的程序动作(检测由壳内进程发出的特定交互指令反馈字符串后向下执行)send:用于向进程发送字符串(从壳外向壳内进程发送一条字符串,换行符为